#ifndef __KERNEL_H__
#define __KERNEL_H__


typedef unsigned char uchar;
typedef unsigned int uint32;

#define BLOCK_NUM_TO_ALLOC 40
void reshape(uchar * hostImgBuffIn, uint32 widthSrc, uint32 heightSrc, uchar*hostImgBuffOut, uint32 widthDst, uint32 heightDst, uchar * dev_buff);

void releaseTexture(void);

void cuda_fft(float * devReIn, float * devImIn, unsigned int length, float * devBuff, float * hostFftOut);
__global__ void genW(float * devW_Re, float * devW_Im, unsigned int halfLength);
__global__ void genW_v1(float * devW, unsigned int halfLength);

void cuda_fft_L(float * devReIn, float * devImIn, unsigned int length, float * devBuff, float * hostFftOut);

void test_kernelSize(unsigned char * devBuffIn, unsigned char * hostOut, unsigned int len);
#endif